package imnu.dao;

import java.sql.*;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author: lys
 * @类名: DbTestDriver
 * @Title:
 * @date: 2020/8/11
 **/
public class DbTestDriver {
    public static void main(String[] args) {
        String strSql = "INSERT INTO depts(dept_id,name,description) VALUES(7,'财务部1','绩效考核');";
        int i = DBHelper.update(strSql);
        System.out.println("受影响的行数："+i);
    }

    public static void test03() {
        System.out.println("======================JDBC======================");
        String strSql="select * from employees;";
        List<Map<String,Object>> list = DBHelper.queryListMap(strSql);
        for (Map<String,Object> mapEachRow : list) {
            Set<Map.Entry<String,Object>> setEn =  mapEachRow.entrySet();
            for(Map.Entry<String,Object> en:setEn){
                System.out.print("    "+en.getValue());
            }
            System.out.println();
        }
    }
    public static void test02() {
        System.out.println("======================JDBC======================");
        try {
            ResultSet rs = DBHelper.query("select * from depts;");
            while(rs.next()){
                System.out.print("  "+rs.getObject(1));
                System.out.print("  "+rs.getObject(2));
                System.out.println();
            }

            System.out.println("再次遍历：");
            while(rs.next()){
                System.out.print("  "+rs.getObject(1));
                System.out.print("  "+rs.getObject(2));
                System.out.println();
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }


    }
    public static void test01() {
        // （1）注册或实例化jdbc的驱动类
        System.out.println("=======================JDBC=======================");
        //提供jdbc连接数据库的url字符串、数据库驱动类名、用户名、密码
        //jdbc:mysql固定格式；localhost：表示数据库服务器的访问地址（主机名：ip，其中localhost 127.0.0.1  表示主机）
        //3306：mysql数据库的默认监听客户端的端口号；端口号后面是连接的数据库名（写入自己的数据库名）
        String strUrl="jdbc:mysql://localhost:3306/imnu0724";
        String strDBDriverType="com.mysql.jdbc.Driver";//数据库驱动类名
        String strUserName="root";//用户名
        String strPwd="123";//密码

        try {
            //加载数据库驱动类
            Class.forName("com.mysql.jdbc.Driver");//固定写法（反射）
            //（2）获取数据库连接对象Connection
            Connection conn = DriverManager.getConnection(strUrl,strUserName,strPwd);
            // (3)获取数据库操作对象Statement(执行增删改查)
            Statement sta = conn.createStatement();
            // (4)执行SQL语句，获取数据操作结果或者结果集对象ResultSet
            String str="select * from depts;";
            //接收返回结果
            ResultSet rs = sta.executeQuery(str);
            // （5）解析结果集对象ResultSet，进行相关的业务处理；
            //使用while循环进行resultSet的解析
            //next方法用于判断，在查询结果集中有没有下一条记录，在开始前，next方法定位在第一条记录之前的位置
            while(rs.next()){
                System.out.print("  "+rs.getObject(1));
                System.out.print("  "+rs.getObject(2));
                System.out.println();
            }
            rs.close();
            sta.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
